package com.xyy.saas.payment.adapter;

import com.xyy.saas.payment.cores.bo.OpenPayBo;
import com.xyy.saas.payment.cores.bo.QueryCreateAllPayBo;
import com.xyy.saas.payment.exception.PaymentException;
import com.xyy.saas.payment.pojo.bo.FrozenBo;
import com.xyy.saas.payment.pojo.bo.UserBo;
import com.xyy.saas.payment.pojo.dto.FrozenDto;
import com.xyy.saas.payment.pojo.dto.OpenPayDto;
import com.xyy.saas.payment.pojo.dto.QueryAccountDto;

import java.util.Map;

public interface PaymentAdapter {

    /**
     * 进件状态查询
     * @param accountId
     * @return
     * @throws PaymentException
     */
    default QueryCreateAllPayBo queryCreateAllPay(String accountId, String businessIdType) throws PaymentException {
        throw new UnsupportedOperationException("QueryCreateAllPayBo queryCreateAllPay");
    };

    /**
     * 开通支付状态查询
     * @return
     * @throws PaymentException
     */
    default Map<String, Boolean> queryOpenPay(String accountId, String businessIdType) throws PaymentException {
        throw new UnsupportedOperationException("queryOpenPay");
    };

    default OpenPayBo openPay(OpenPayDto openPayDto) throws PaymentException {
        throw new UnsupportedOperationException("openPay");
    };

    default UserBo queryAccount(QueryAccountDto param) throws PaymentException {
        throw new UnsupportedOperationException("queryAccount");
    };
}